home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / telecomm / locdl11a.lzh / LOCALDL.SCP < prev    next >
Text File  |  1995-11-20  |  5KB  |  186 lines

  1. »  4777                                   
  2. ; ****************************************************************************
  3. ; *** RATSoft/ST Local Download Main Script v1.1a.       November 20, 1995 ***
  4. ; *** Main Script: localdl.scp                                             ***
  5. ; ***                                                                      ***
  6. ; *** Developed and programmed by Daniel Hedberg of New Beat Development.  ***
  7. ; ****************************************************************************
  8. ;
  9. datafile$=CONFIG$(25)+"LDL_PATH.DAT"
  10. temp$=CONFIG$(29)+"BATCHQUE.DAT"
  11. PAGEBREAK=OFF
  12. OUT "&90"
  13. CENTER "&58 RATSoft/ST Local Download Script v1.1a (November 20, 1995) &50"
  14. CENTER "Written by Daniel Hedberg of New Beat Development in RAT-Script"
  15. OUT
  16. IF EXIST(temp$)=FALSE
  17.   CENTER "&57 You have no files marked for download. Download aborted &50"
  18. ELSE
  19.   OPEN(temp$,INPUT)
  20.   files%=0
  21.   filesize%=0
  22.   CENTER "&57 Checking Marked Files. Please Wait! &50";
  23.   REPEAT
  24.     files%=ADD(files%,1)
  25.     filesize$=READ$
  26.     filesize%=filesize%+VAL(filesize$)
  27.     scrap$=READ$
  28.     scrap$=READ$
  29.     scrap$=READ$
  30.     scrap$=READ$
  31.   UNTIL EOF=TRUE
  32.   CLOSE
  33.   IF EXIST(datafile$)=FALSE
  34.     OPEN(datafile$,OUTPUT)
  35.     WRITE "C:\"
  36.     CLOSE
  37.   ELSE
  38.     OPEN(datafile$,INPUT)
  39.     default$=READ$
  40.     CLOSE
  41.   ENDIF
  42.   _restart:
  43.   OUT "&90"
  44.   CENTER "&58 RATSoft/ST Local Download Script v1.1a (November 20, 1995) &50"
  45.   CENTER "Written by Daniel Hedberg of New Beat Development in RAT-Script"
  46.   OUT
  47.   OUT "Please enter a destination path for the marked file(s), or press [RETURN]"
  48.   OUT "to use the last used destination path: &57 "+UPPER$(default$)+" &50"
  49.   OUT
  50.   OUT "  You have &57 "+STR$(files%)+" &50 file(s) marked, in &57 "+STR$(filesize%)+" &50 bytes."
  51.   OUT
  52.   _enter_destination_path:
  53.   OUT "Destination path: ";
  54.   dest_path$=INPUT$(58,TRUE)
  55.   start%=RINSTR(dest_path$,"\",1000)
  56.   length%=LEN(dest_path$)
  57.   length%=SUB(length%,start%)
  58.   IF length%>0
  59.     dest_path$=dest_path$+"\"
  60.   ENDIF
  61.   IF dest_path$=""
  62.     dest_path$=default$
  63.   ELSE IF MID$(dest_path$,2,2)<>":\"
  64.     OUT "Error! Invalid path."
  65.     OUT
  66.     GOTO _enter_destination_path
  67.   ENDIF
  68.   OUT
  69.   OUT "Are you sure? [Y/n/q] ";
  70.   _get_key1:
  71.   REPEAT
  72.     inkey$=KEY
  73.   UNTIL inkey$<>""
  74.   IF UPPER$(inkey$)="Y"
  75.     GOTO _continue1
  76.   ELSE IF inkey$=CHR$(13)
  77.     GOTO _continue1
  78.   ELSE IF UPPER$(inkey$)="N"
  79.     GOTO _restart
  80.   ELSE IF UPPER$(inkey$)="Q"
  81.     OUT
  82.     GOTO _quit
  83.   ELSE
  84.     GOTO _get_key1
  85.   ENDIF
  86.   _continue1:
  87.   dest_path$=UPPER$(dest_path$)
  88.   device$=MID$(dest_path$,1,3)
  89.   old_dir$=CUR_DIR$
  90.   OUT
  91.   OUT
  92.   CHECK_PATH(dest_path$)
  93.   CHDIR dest_path$
  94.   IF EXIST("*.*")=TRUE
  95.     _not_empty:
  96.     OUT "Warning! Destination directory is not empty."
  97.     OUT "Do you want to delete the files(s) in the directory? [y/N/v/q] ";
  98.     _get_key2:
  99.     REPEAT
  100.       inkey$=KEY
  101.     UNTIL inkey$<>""
  102.     IF UPPER$(inkey$)="V"
  103.       OUT
  104.       OUT
  105.       OUT "&58 Viewing files... &50"
  106.       OUT
  107.       mask$=dest_path$+"*.*"
  108.       f_loc%=ADD(DTA%,30)
  109.       stat%=FSFIRST(mask$,3)
  110.       PAGEBREAK=ON
  111.       DO UNTIL stat%<>FALSE
  112.         filename$=CHAR(f_loc%)
  113.         OUT dest_path$+filename$
  114.         stat%=FSNEXT
  115.       LOOP
  116.       PAGEBREAK=OFF
  117.       OUT
  118.       GOTO _not_empty
  119.     ELSE IF UPPER$(inkey$)="Y"
  120.       OUT
  121.       OUT
  122.       OUT "&58 Deleting files... &50"
  123.       OUT
  124.       mask$=dest_path$+"*.*"
  125.       f_loc%=ADD(DTA%,30)
  126.       stat%=FSFIRST(mask$,3)
  127.       DO UNTIL stat%<>FALSE
  128.         filename$=CHAR(f_loc%)
  129.         OUT dest_path$+filename$;
  130.         IF DOS(3,filename$)<>FALSE
  131.           OUT "   - Error! File is write protected."
  132.         ENDIF
  133.         OUT
  134.         stat%=FSNEXT
  135.       LOOP
  136.       OUT
  137.       GOTO _continue2
  138.     ELSE IF inkey$=CHR$(13)
  139.       OUT
  140.       OUT
  141.       GOTO _continue2
  142.     ELSE IF UPPER$(inkey$)="N"
  143.       OUT
  144.       OUT
  145.       GOTO _continue2
  146.     ELSE IF UPPER$(inkey$)="Q"
  147.       OUT
  148.       GOTO _quit
  149.     ELSE
  150.       GOTO _get_key2
  151.     ENDIF
  152.   ENDIF
  153.   _continue2:
  154.   free%=DFREE
  155.   CHDIR old_dir$
  156.   IF free%<filesize%
  157.     OUT "Aborted! Not enough free space on drive "+MID$(device$,1,2)+"."
  158.     OUT
  159.     GOTO _enter_destination_path
  160.   ENDIF
  161.   OUT "&58 Copying files... &50"
  162.   OUT
  163.   OPEN(temp$,INPUT)
  164.   REPEAT
  165.     filesize$=READ$
  166.     source$=READ$
  167.     scrap$=READ$
  168.     scrap$=READ$
  169.     scrap$=READ$
  170.     start%=RINSTR(source$,"\",1000)+1
  171.     filename$=MID$(source$,start%,12)
  172.     dest$=dest_path$+filename$
  173.     OUT UPPER$(source$)+" -> "+UPPER$(dest$)
  174.     COPY(source$,dest$)
  175.   UNTIL EOF=TRUE
  176.   CLOSE
  177.   OPEN(datafile$,OUTPUT)
  178.   WRITE dest_path$
  179.   CLOSE
  180.   ENV "CM:[nque]"
  181.   DOS(3,temp$)
  182.   _quit:
  183.   PAGEBREAK=ONE
  184. ENDIF
  185. EXIT
  186.